1. Field of the Invention
The present invention relates to managing isochronous work, such as data streaming on a computer system concurrently with other types of work and, in particular, allocating processor resource to the streaming work according to its business importance.
2. Description of Related Art
Isochronous data streaming work (for example, streaming audio or video) has unique processor requirements. In order to provide a smooth and uninterrupted flow of data to the client, data streaming work requires both timely and sufficient access to the processor resource per unit of time. This requirement does not exist for traditional types of non-streaming work, such as interactive, transactional, and batch.
There are several approaches currently taken to guarantee this access. In the dedicated machine approach, a particular computer system runs only streaming work. As the capacity of the machine is known to the streaming server, it will only start as many streams as the processor is capable of running. This is not an economical way to run streaming work since it requires more dedicated machines to run more streams and does not allow other work to run on unused or under used machines.
In the high dispatch priority approach, streaming work is given a high dispatching priority to insure access to the processor whenever it is ready to execute. This results in the possibility of streaming work dominating other types of work since there is no way to reserve capacity for other work or restrict the amount of processor that the streaming work will consume.
In the high dispatch priority with admission control approach, the system administrator for streaming work reserves a certain amount of processor capacity. Streaming units of work are started if the admission control algorithm determines that they could run in the available remaining capacity. There are several methods for extrapolating whether a streaming unit of work will fit in the remaining capacity. Some methods use a constant to relate a bit rate to an amount of processor resource. Other methods use a calibration technique where streaming units of work of various bit rates are monitored with their processor consumption being recorded at initialization. Still other methods calculate a bit rate/processor consumption ratio based on current observed usage.
A method for performing admission control in a manner that limits the amount of processor resource consumed by a group of work units is described in U.S. patent application Ser. No. 08/829,538, filed Mar. 28, 1997 now U.S. Pat. No. 6, 282, 560 in the name of C. K. Eilert et al. for xe2x80x9cManaging processor Resources In A Non-Dedicated Computer Systemxe2x80x9d. This patent does not address how to handle requests that fail admission control for reason of exceeding the limit amount of allocated processor resource.
Another complication arises when the bit stream has a variable rate. There are two possibilities for assigning processor resource for a data stream with a variable bit rate, namely, a peak value or an average value. If the more conservative peak value is used, the total assigned processor capacity will not be exceeded by the case where multiple streams achieve their peak bit rate at the same time. However, a streaming unit of work will not be started if its peak bit rate will cause the total assigned-processor capacity to be exceeded even though there is sufficient processor resource available. If the average bit rate value is used for allocation of processor resource, it is possible that multiple streaming units of work achieving a peak rate simultaneously will exceed the total assigned amount of processor resource.
There are disadvantages to the peak value and average value approaches. First, When the peak value approach is used, a stream that could actually run may not be started. This leads to decreased parallelism. Second, all the streaming units of work are capped by the calculated limits such that they all run in a degraded fashion. For streaming work, running in a degraded fashion is unacceptable since if the isochronous rate is not met the video will contain artifacts and the audio will drop out or be unintelligible.
Thus, the aforementioned approaches have drawbacks that either degrade the quality of streaming work or decrease parallelism of streaming work. In such approaches, all streaming work has been treated equally. What is needed is an approach that minimizes degradation of streaming work and delay of non-streaming work.
Another aspect of managing streaming work is minimizing the startup latency that occurs when a new copy of the stream server has to be initialized at the time a streaming request is received. There are several methods for dealing with the startup latency problem that all suffer various drawbacks. Some methods instantiate a new copy of the stream server as necessary, thereby conserving storage, but incurring a startup time for every streaming request. Other methods that run a maximum number of streams start the requisite number of stream processes in advance of any request. These stream processes remain initialized, thereby consuming storage regardless of whether streaming work is currently active. This storage is consumed even if there is pressure for storage on the machine from other work, thereby resulting in an inefficient use of the storage and processor resources of the machine. Still other methods use a single copy of code to process several streams rather than a separate copy for each. This approach suffers from a susceptibility to code failure that will result in all streams terminating.
The classification of traditional types of work according to a relative importance based on rules specified by the system administrator is described in U.S. Pat. No. 5,473,773 to J. D. Aman et al., entitled xe2x80x9cApparatus and Method for Managing a Data processing System Workload According to Two or More Distinct processing Goalsxe2x80x9d.
Thus, a method is needed that allows a system administrator to define a specific capacity of processor resource for streaming work and to allocate that processor resource to streaming work based on such capacity with the remaining capacity of the machine being reserved and available for other types of work.
There is also a need for a management process that relieves storage pressure on behalf of other types of work so as to allow for more efficient use of processor and storage.
Lastly, since isochronous applications may be ported from one platform to another it is not often the case that the admission control or process model from one platform is appropriate for porting to another platform. Since the application has isochronous goals it is advantageous to provide a framework of existing services to achieve these goals rather than forcing each new application to modify or reinvent a scheme to meet these goals.
An object of the present invention is to provide a method of allocating computer resources to isochronous streaming work according to its business importance relative to other types of work as well as other streaming.
Disadvantages of the prior art approaches are overcome according to the present invention by a method that manages streaming work based on business importance. A system administrator defines the amount of processor resource that is available for allocation to streaming work. New streaming work is admitted if there is processor resource available or if there is currently running streaming work that has a lower business importance than the new streaming work. That is, the lower business importance work is preempted to provide processor resource for the higher priority streaming work.
A further object of the present invention is to allow a system administrator a choice for the preemption action of either pausing or terminating the currently running streaming work. In a related aspect of the present invention, preempted work is resumed when processor resource becomes available if the preemption action was pause.
In a further aspect of the present invention, streaming work is monitored to make sure it does not consume more processor resource than a defined amount that has been assigned by the system administrator. In the event streaming work actually consumes more than its estimated amount of processor resource, individual streaming units of work will be preempted based on business importance until the processor resource consumed by all streaming work is less than the defined amount. The preempted work will be resumed when processor resource later becomes available.
According to a further feature of the present invention, storage consumption by stream servers is avoided when there is currently no streaming work and storage is needed by other work on the system that has a higher business importance than the streaming work. Incoming requests for streaming units of work are placed on a queue served by a workload manager which starts new stream server processes on demand since code in the stream server side of the queue performs admission control. The workload manager then shuts down initialized, waiting stream server processes if it detects that storage is needed by work with a higher business importance.
A still further aspect of the present invention is to provide the framework of the existing queuing mechanism, admission control, preemption and resumption services, security environment initialization, as well as the process management mechanism so that a generic isochronous process can be managed.